const _ = require('loadsh')

// // 采用闭包的方式，降维
// function mySetTimeout(time) {
//     return function myConsole(str) {
//         return setTimeout(function(){
//             toConsole(str)
//         }, time)
//     }
// }

// 传递 3 个参数。
function consoleClass(step1,step2,step3){
    return step1 + ' ' + step2 + ' ' + step3
}

const toConsole = _.curry(consoleClass)
console.log(toConsole(1,2,3))
// // 设定 10 ms 延迟
// let example1SetTimeout = mySetTimeout(10)

// Promise.resolve().then(() => {
//     example1SetTimeout('hello')
// }).then(() => {
//     example1SetTimeout('lagou')
// }).then(() => {
//     example1SetTimeout('I')
// }).catch(err=>{
//     console.log(err)
// })
var a = 'Hello'
var b = 'lagou'
var c = 'I Love You!'
let consoleParams = null
Promise.resolve().then(() => {
    setTimeout(function(){
        consoleParams = toConsole(a)
    },10)
}).then(() => {
    setTimeout(function(){
        consoleParams = consoleParams(b)
    },10)
}).then(() => {
    setTimeout(function(){
        consoleParams = consoleParams(c)
        console.log(consoleParams)
    },10)
}).catch(err=>{
    console.log(err)
})

